<main class="main-container ng-scope" ng-view=""><div class="main receptacle post-view ng-scope"><article class="entry ng-scope" ng-controller="EntryCtrl" ui-lightbox=""><header><h1 class="entry-title ng-binding">由参数URL想到的</h1><div class="entry-meta"><a target="_blank" class="author name ng-binding">瞌睡龙</a> <span class="bull">·</span> <time title="2013/06/28 16:25" ui-time="" datetime="2013/06/28 16:25" class="published ng-binding ng-isolate-scope">2013/06/28 16:25</time></div></header><section class="entry-content ng-binding" ng-bind-html="postContentTrustedHtml"><p></p><h3>0x00 抛砖引玉</h3><hr><p>当你看到一个参数的值是url的时候你会想到什么？</p><p>结合wooyun里的案例看，可能产生的危害分为三方面：</p><pre><code>1、url重定向跳转漏洞
2、底层操作类库支持其他协议导致读取本地或探测网络信息
3、不支持其他协议但是没有设置网络边界
</code></pre><h3>0x01 详细介绍</h3><hr><h4>URL重定向跳转</h4><p>url跳转漏洞的科普之前已经发过<a href="http://drops.wooyun.org/papers/58">http://drops.wooyun.org/papers/58</a>。</p><p>url跳转可能集中过滤不严格的情况：</p><pre><code>一是白名单同域下可能有其他的302跳转漏洞结合绕过。
二是单纯判断字符串中是否包含白名单域名，可用http://www.attack.com/test.com/index.php或http://www.test.com.attack.com/index.php绕过。
三是后端取host的时候跟浏览器识别的差异导致http://www.attack.com\test.com/index.php（测试除了gecko内核，其他浏览器都把attack.com当做host）可绕过。
后端如果仅仅是依靠获取/来结束的话，就会产生差异，包括php中的parse_url函数获取host的结果也是www.attack.com\test.com
</code></pre><h4>底层操作类库支持其他协议导致读取本地或探测网络信息</h4><p>wooyun中案例：</p><p><a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2011-03070">WooYun: 微博--微收藏多处任意文件读取漏洞</a></p><p><a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2010-012">WooYun: 人人网的分享网页功能存在诸多安全漏洞</a></p><p>获取地址的内容输出出来，后端采用curl库，支持其他的协议，如果没有做任何过滤防范措施，可使用file协议时便可读取本地的文件，telnet探测端口信息等。</p><pre><code>http://share.renren.com/parse_share.do?link=file:///etc/passwd
http://share.renren.com/parse_share.do?link=file:///etc/sysconfig/
http://mark.appsina.com/read.php?sid=2247&amp;type=0&amp;url=telnet://221.179.193.1&amp;pos=1&amp;from=0&amp;gsid=3_5bc7d139d8527229d2df38b6765c6b91b8428eda66bd8c1e61b5df&amp;vt=2
</code></pre><h4>不支持其他协议但是没有设置网络边界</h4><p>wooyun中案例：</p><p><a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-026212">WooYun: 我是如何漫游腾讯内部网络的</a></p><p><a target="_blank" href="http://www.wooyun.org/bugs/wooyun-2013-026249">WooYun: 我是如何漫游搜狗和搜狐内部网络的</a></p><p>这两个漏洞已经对核心白帽子公开，并且厂商已经修复，就拿来做例子了。</p><p>当已经针对url做了协议控制只允许http访问时还能做什么呢？</p><p>尝试下访问内网吧</p><pre><code>http://wap.sogou.com/tc?url=http%3A%2F%2Fno.sohu.com%2F
</code></pre><p>可以用暴力破解二级域名的工具找内网的域名跑一下试试，然后尝试访问看看是否成功~！</p><h3>0x02 修复方案</h3><hr><h4>加入有效性验证Token</h4><p>我们保证所有生成的链接都是来自于我们可信域的，通过在生成的链接里加入用户不可控的Token对生成的链接进行校验，可以避免用户生成自己的恶意链接从而被利用，但是如果功能本身要求比较开放，可能导致有一定的限制。</p><h4>设置严格白名单及网络边界</h4><p>功能要求比较开放的情况下，需要严格限定协议以及可访问的网络。</p><p></p></section></article><div class="entry-controls clearfix"><div style="float:left;color:#9d9e9f;font-size:15px"><span>&copy;乌云知识库版权所有 未经许可 禁止转载</span></div></div><div id="donate" style="padding:10px;border-top:1px solid #d9d9d9;text-align:center"><span>碎银子打赏，作者好攒钱娶媳妇：</span><br><br><img src="http://static.wooyun.org/wooyun/upload/donate/20141017203549ef27b55a7921e022214b5780c48f81e0.png" style="width:200px;height:200px"></div><div class="yarpp-related"><h3>为您推荐了适合您的技术文章:</h3><ol id="recommandsystem"><li><a href="http://drops.wooyun.org/papers/345" rel="bookmark" id="re1">在线支付逻辑漏洞总结</a></li><li><a href="http://drops.wooyun.org/papers/346" rel="bookmark" id="re2">终端机的安全性</a></li><li><a href="http://drops.wooyun.org/papers/155" rel="bookmark" id="re3">CSRF简单介绍及利用方法</a></li><li><a href="http://drops.wooyun.org/papers/64" rel="bookmark" id="re4">DNS域传送信息泄露</a></li></ol></div><div id="comments" class="comment-list clearfix"><div id="comment-list"><div class="note-comment"><img class="avatar" alt="30" src="http://wooyun.b0.upaiyun.com/wooyun_job/avatar/default.png"><div class="content"><div class="comment-header"><span class="author-link">枯荣</span> <span class="reply-time">2015-08-06 16:22:48</span></div><p></p><p>学习了</p><p></p></div></div><div class="note-comment"><img class="avatar" alt="30" src="http://wooyun.b0.upaiyun.com/wooyun_job/avatar/default.png"><div class="content"><div class="comment-header"><span class="author-link">possible</span> <span class="reply-time">2014-01-15 13:53:42</span></div><p></p><p>越看越觉得一个合格的程序员是多么的难...</p><p></p></div></div><div class="note-comment"><img class="avatar" alt="30" src="http://wooyun.b0.upaiyun.com/wooyun_job/avatar/default.png"><div class="content"><div class="comment-header"><span class="author-link">骨灰</span> <span class="reply-time">2014-01-13 20:30:47</span></div><p></p><p>膜拜高手，原来我还没有入门！</p><p></p></div></div><div class="note-comment"><img class="avatar" alt="30" src="http://wooyun.b0.upaiyun.com/wooyun_job/avatar/default.png"><div class="content"><div class="comment-header"><span class="author-link">梧桐雨</span> <span class="reply-time">2013-07-01 13:48:06</span></div><p></p><p>原来结界师是这么打破结界的呀，学习了。(*^__^*) ~</p><p></p></div></div><div class="note-comment"><img class="avatar" alt="30" src="http://wooyun.b0.upaiyun.com/wooyun_job/avatar/default.png"><div class="content"><div class="comment-header"><span class="author-link">xsser</span> <span class="reply-time">2013-06-28 16:50:31</span></div><p></p><p>给力啊！</p><p></p></div></div></div></div></div></main>